AWS Redshift
フルマネージドのデータウェアハウス
インスタンスの時間課金
S3に置いたファイルを外部テーブルとして直接参照したりできる→Spectrum
redshiftに保存したデータはS3にRedshiftフォーマットで保管される。
永続データ→S3
キャッシュ→ローカルSSD
lambda udf→lambdaでudfを定義してRedshiftのsqlから使える
その他
リザーブドインスタンスでコスト最適化
スポットインスタンスは使用できない
パフォーマンスの4ポイント
列指向ストレージ
データ圧縮
ソートキー→ゾーンマップを活用してそもそもアクセスしないことでディスクIO向上
データ分散
hiroki.icon基本的にどのdwhでも同じだよね
https://gyazo.com/b0995da4182ba7dde248376e744ff647https://gyazo.com/8bed95e6f188e32dcadc9f8d13e113fe
https://gyazo.com/5eda7f43aa23d8a0c697602e768ec8e0https://gyazo.com/0e89955028545b3ab0b98f258e68c88e
メリット
AWSユーザーならコンソールから一画面で簡単にクラスターを準備できる
AWSとの連携
クラスターを簡単に伸縮できる(Concurrency Scaling処理待ちが発生すると自動で新しいクラスターが立ち上がって対処)
→コンピュートノードの追加で性能がリニアに向上
hiroki.icon単一ノード処理が頻発するようなクエリを書いていると無意味だよね
https://gyazo.com/63c5e8899d17a6153a5a538119285749
RA3かSpectrumか
Redshiftからのみ使う→RA3
他のサービスからも使う→Spectrum
https://gyazo.com/d9ce1a6af4cb041101473a303eb61d57
https://gyazo.com/346e9febd1879ed096deef95af670772
https://gyazo.com/507890f545ba7bf5b3a4fe7dd5485551
インスタンスに密結合だったローカルストレージをマネージドストレージに分離した
ブロックレベルでキャッシュに乗っている
Redshiftの高速化の鍵はキャッシュ戦略ってことだね
/icons/hr.icon
https://youtu.be/Myzy68VEXjM
https://gyazo.com/41be05ed87f99e40029c8762df8acc1d
https://gyazo.com/1b103e54422191c7dd7eae1bf8afe54e
https://youtu.be/CkSBRQYkHXM
https://gyazo.com/d928c653bd5d3a2a50cf4a24e8e02b65
https://gyazo.com/237db078078e52c2719315232a0d3d25
https://gyazo.com/98c6e4c323f68450aec62903f0adbae1
https://gyazo.com/2d2095d2dd9bf9d119ce73503e1a2fbc
https://gyazo.com/6f204646caec04d5e43c94ff6f91b675
https://gyazo.com/dd86306bcab00fe03b22689cf54276e1
https://gyazo.com/40a9d52c1a63ba6137067d6cc7075f57
https://gyazo.com/68aed5e1a2602adcba74770583b3f887